package com.qumitech.visualnovel.service.trend;

import com.qumitech.visualnovel.model.common.BaseRsp;
import com.qumitech.visualnovel.controller.vo.trend.*;
import com.qumitech.visualnovel.pubdef.dto.trend.CommentAdminDTO;
import com.qumitech.visualnovel.pubdef.dto.trend.TrendAdminDTO;
import com.qumitech.visualnovel.pubdef.dto.trend.TwitterTopCfgAdminDTO;

import java.util.List;
import java.util.Map;

/**
 * @Auther: yilu
 * @Date: 2018/12/6 22:40
 * @Description:
 */
public interface TrendConfigService {
    /**
     * 获取所有话题分类
     */
    Map<String, Object> getCategories(Integer page, Integer size);

    /**
     * 获取所有话题
     */
    Object getAllTopics();

    /**
     * 获取分类对应的话题
     */
    Map<String, Object> getTopicsByCategory(String categoryId);

    /**
     * 添加话题分类
     */
    void addCategory(TopicCategoryVO topicCategoryVO);


    void updateCategory(TopicCategoryVO topicCategoryVO);

    void deleteCategory(String categoryId);

    void sortCategory(CategoryListVO categoryListVO);

    /**
     * 添加话题
     */
    void addTopic(TopicVO topicVO);

    /**
     * 删除话题
     *
     * @return
     */
    void deleteTopic(String topic);

    /**
     * 更新话题
     *
     * @param topicVO
     */
    void updateTopic(TopicVO topicVO);

    void sortTopics(TopicListVO topicListVO, Boolean isHotTopic);

    public BaseRsp listAllTopics(Map<String, String> paramMap);

    Map<String, Object> getAllHotTopics();

    void addHotTopic(List<HotTopicVO> hotTopicVO);

    void deleteHotTopic(String topicId);

    Map<String, Object> getTrendByConditions(Map<String, String> paramMap);

    void deleteTrend(List<String> trendIds);

    Map<String, Object> getComments(Map<String, String> paramMap);

    void deleteComment(String commentId);

    void addComment(CommentDTO dto);

    void updateTrendAdmin(TrendAdminDTO trendAdminDTO);

    void updateCommentAdmin(CommentAdminDTO commentAdminDTO);

    Map<String, Object> getUserTrendSum(Map<String, String> paramMap);

    Map<String, Object> getUserCommentSum(Map<String, String> paramMap);

    Map<String, Object> getUserLikeSum(Map<String, String> paramMap);

    //动态置顶
    BaseRsp listAllTopTwitter(Map<String, String> paramMap);
    BaseRsp saveTopTwitter(TwitterTopCfgAdminDTO adminDTO);
    BaseRsp deleteTopTwitter(Long id);
}
